/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package main;

import comunicacao.RmiClient;
import comunicacao.RmiClientApp;
import entities.Resposta;
import java.util.ArrayList;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Leonardo Lino Nº45340
 * @author Diogo Pires Nº40351
 */
@ManagedBean
@RequestScoped
public class ListaTeatros {

    private String test;
    private ArrayList<String> lista;
    private int numTd;
    private int estado= 0;
    private int clientID;

    /**
     * Creates a new instance of ListaTeatros
     */
    public ListaTeatros() {

    }

    public void preRender() {

        FacesContext fc = FacesContext.getCurrentInstance();
        String clientStr
                = (String) fc.getExternalContext().
                getRequestParameterMap().get("client");

        Principal prin = (Principal) FacesContext.getCurrentInstance()
                .getExternalContext().getSessionMap().get("principal");
        clientID = prin.getClientID();

        RmiClientApp rmiClient = new RmiClientApp();
        boolean ok = rmiClient.selectorAppServer(prin);
        
        Resposta resposta = null;
        
        
        if (ok){
        resposta = rmiClient.listaTeatros();
        } else {
            setEstado(2);
            lista = null;
            return;
        }
        
        

        if (resposta == null) {
            System.err.println("resposta esta null");
            lista = null;
            estado = 2;
        } else {

            estado = resposta.getEstado();

            if (resposta.getEstado() == Resposta.ESTADO_AVAILABLE) {
                lista = resposta.getTeatrosLista();

            } else if (resposta.getEstado() == Resposta.ESTADO_BUSY) {
                lista = null;

            } else if (resposta.getEstado() == Resposta.ESTADO_FULL) {
                lista = null;
            }
        }
    }

    @PostConstruct
    public void carregou() {

       

    }

    public String submit(Integer param) {
        System.out.println("Submit using value " + param);
        return null;
    }

    public ArrayList<String> getLista() {
        return lista;
    }

    public void setLista(ArrayList<String> lista) {
        this.lista = lista;
    }

    public String getTest() {
        return test;
    }

    public void setTest(String test) {
        this.test = test;
    }

    public int getNumTd() {
        return numTd;
    }

    public void setNumTd(int numTd) {
        this.numTd = numTd;
    }

    public int getEstado() {
        return estado;
    }

    public void setEstado(int estado) {
        this.estado = estado;
    }

    public int getClientID() {
        return clientID;
    }

    public void setClientID(int clientID) {
        this.clientID = clientID;
    }

}
